package com.moli.iov.base.remote;

import com.moli.iov.base.model.dto.req.SoftVersionReqDto;
import com.moli.iov.base.model.dto.req.TboxUpgradeFileReqDto;
import com.moli.iov.base.model.dto.req.UpgradeFileQueryDto;
import com.moli.iov.base.model.dto.res.TboxUpgradeFileResDto;
import com.moli.iov.base.model.po.TboxUpgradeFile;
import com.moli.iov.model.dto.req.PageExtend;
import com.moli.iov.rest.RestResponse;
import java.util.List;
import java.util.Map;

/**
 * @author whl
 */
public interface ITboxUpgradeFileRemoteService {
  /**
   * 新增
   *
   * @param reqDto
   * @return
   */
  RestResponse  saveUpgradeFile(TboxUpgradeFileReqDto reqDto);

  /**
   * 修改
   *
   * @param reqDto
   * @return
   */
  RestResponse  updateUpgradeFile(TboxUpgradeFileReqDto reqDto);

  /**
   * 删除
   *
   * @param reqDto
   * @return
   */
  RestResponse  deleteUpgradeFile(TboxUpgradeFileReqDto reqDto);

  /**
   * 列表
   * @param reqDto
   * @return
   */
  public RestResponse<PageExtend<TboxUpgradeFileResDto>> listTboxUpgradeFile(UpgradeFileQueryDto reqDto);
  /**
   * 根据vin获取升级文件信息
   *
   * @param vinList 要升级车辆TBOX固件的vin,不可为空
   * @return
   */
  RestResponse<Map<String, TboxUpgradeFile>> getUpgradeFileByVin(List<String> vinList);

  /**
   * 详情
   * @param reqDto
   * @return
   */
  public RestResponse<TboxUpgradeFileResDto> getTboxUpgradeFileById(TboxUpgradeFileReqDto reqDto);

  RestResponse<List<TboxUpgradeFileResDto>> listSoftVersion(SoftVersionReqDto reqDto);
}
